package com.priox.sigar.domain.model;


import com.mm.support.domain.IdentifiedAuditableDomainObject;
import com.priox.sigar.enums.ActivoInactivo;
import com.priox.sigar.enums.TipoCuentaOperacion;
import com.priox.sigar.enums.TipoVisible;

import javax.persistence.*;
import java.util.Set;

@Entity
@Table(name = "SGTM_CUENTA_CONTABLE")
public class CuentaContable extends IdentifiedAuditableDomainObject {

    @Id
    @Column(name = "CUENTA_CONTABLE_ID")
    private String cuentaContableId;


    @Column(name = "DESCRIPCION")
    private String descripcion;

    @Column(name = "ESTADO")
    private ActivoInactivo estado;

    @Column(name = "OPCION")
    private TipoVisible opcion;

    @Column(name = "TIPOCUENTA",columnDefinition = "int")
    private Long tipoOperacionId;

    @Transient
    private TipoCuentaOperacion tipoOperacion;

    @ManyToMany(mappedBy = "cuentaContables")
    private Set<Agrupacion> agrupaciones;


    public String getCuentaContableId() {
        return cuentaContableId;
    }

    public void setCuentaContableId(String cuentaContableId) {
        this.cuentaContableId = cuentaContableId;
    }

    public String getDescripcion() {
        return descripcion;
    }

    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }

    public ActivoInactivo getEstado() {
        return estado;
    }

    public void setEstado(ActivoInactivo estado) {
        this.estado = estado;
    }


    public Set<Agrupacion> getAgrupaciones() {
        return agrupaciones;
    }

    public void setAgrupaciones(Set<Agrupacion> agrupaciones) {
        this.agrupaciones = agrupaciones;
    }

    public TipoVisible getOpcion() {
        return opcion;
    }

    public void setOpcion(TipoVisible opcion) {
        this.opcion = opcion;
    }

    public Long getTipoOperacionId() {
        return tipoOperacionId;
    }

    public void setTipoOperacionId(Long tipoOperacionId) {
        this.tipoOperacionId = tipoOperacionId;
    }

    public TipoCuentaOperacion getTipoOperacion() {
        return tipoOperacion;
    }

    public void setTipoOperacion(TipoCuentaOperacion tipoOperacion) {
        this.tipoOperacion = tipoOperacion;
    }
}
